<template>
  <div class="login-main">
    <div class="login-top">
      <img src="~assets/images/c.png" alt />
    </div>
    <div class="login-cont">
      <div class="item">
        <input v-model="phone" type="text" placeholder="手机号码" />
      </div>
      <div class="item">
        <input type="text" placeholder="验证码" />
        <span v-if="isrun" @click="getSMS">获取短信验证码</span>
        <span v-else>
          重新获取
          <b style="color:red">({{time}}s)</b>
        </span>
      </div>
    </div>
    <div class="login-bottom" @click="login">
      <div class="login-btn">登 录</div>
    </div>
  </div>
</template>

<script>
//这里可以导入其他文件（比如：组件，工具js，第三方插件js，json文件，图片文件等等）
//例如：import 《组件名称》 from '《组件路径》';

import Vue from "vue";
import { Toast } from "vant";
Vue.use(Toast);

import { Login } from "@/api/user";
// http://math.zjwas.com/api/v1/user/get_code/?phone=18279661738&code=1234
export default {
  //import引入的组件需要注入到对象中才能使用
  components: {},
  data() {
    //这里存放数据
    return {
      phone: "",
      time: 60,
      isrun: true,
      timer: null
    };
  },
  //监听属性 类似于data概念
  computed: {},
  //监控data中的数据变化
  watch: {},
  //方法集合
  methods: {
    countDown() {
      // 倒计时
      if (this.isrun) {
        this.isrun = false;
        this.timer = setInterval(() => {
          if (this.time == 0) {
            // 60秒倒计时结束
            this.isrun = true; //
            this.time = 60;
            clearInterval(this.timer);
          } else {
            this.time--;
          }
        }, 1000);
      }
    },

    getSMS() {
      let re = /^1[34578]\d{9}/.test(this.phone);
      if (!re) {
        Toast("手机号格式错误");
        return;
      }
      this.$axios
        .get(
          `http://math.zjwas.com/api/v1/user/get_code/?phone=${this.phone}&code=1234`
        )
        .then(res => {
          console.log(res);
          if (res.data.meta.code == 0) {
            this.countDown();
          }
          Toast(res.data.meta.message);
        })
        .catch(err => {
          console.log(err);
        });
    },


    login() {
      Login({code:this.phone}).then(res=>{
        this.$storage.setStorage('token',res.token)
        this.$router.push('/')
      })
    }
  },
  //生命周期 - 创建完成（可以访问当前this实例）
  created() {},
  //生命周期 - 挂载完成（可以访问DOM元素）
  mounted() {},
  beforeCreate() {}, //生命周期 - 创建之前
  beforeMount() {}, //生命周期 - 挂载之前
  beforeUpdate() {}, //生命周期 - 更新之前
  updated() {}, //生命周期 - 更新之后
  beforeDestroy() {}, //生命周期 - 销毁之前
  destroyed() {}, //生命周期 - 销毁完成
  activated() {} //如果页面有keep-alive缓存功能，这个函数会触发
};
</script>
<style lang='scss' scoped>
.login-main {
  display: flex;
  flex-direction: column;
  align-items: center;
  .login-top {
    margin: 3.4rem 0 1rem 0;
    width: 4.4rem;
    height: 4.4rem;
  }
  .login-cont {
    font-size: 0.6rem;
    width: 80%;
    .item {
      position: relative;
      margin: 1rem auto;
      border-radius: 1.5rem;
      box-shadow: 0 0 1.2rem rgba(43, 86, 112, 0.1);
      span {
        color: rgba(0, 0, 0, 0.7);
        position: absolute;
        right: 0.5rem;
        top: 0.8rem;
        letter-spacing: 0.04rem;
        font-size: 0.3rem;
      }
    }
    input {
      padding-left: 0.5rem;
      width: 90%;
      border-radius: 1.5rem;
      border: none;
      height: 2rem;
    }
  }
  .login-bottom {
    width: 100%;
    display: flex;
    justify-content: center;
    margin-top: 1rem;
    .login-btn {
      width: 80%;
      text-align: center;
      color: #fff;
      font-size: 0.6rem;
      height: 2rem;
      line-height: 2rem;
      border-radius: 1.5rem;
      background: rgb(21, 74, 154);
    }
  }
}
</style>